home *** CD-ROM | disk | FTP | other *** search
-
- FUNCT-10.PAT
-
- This is a patch for QEMM-386 versions 5.10 to 5.13. It is not
- useful on any other version of QEMM-386.
-
- WHAT CAUSES THE PROBLEM?
- Requesting a UMB: If a program tries to to use the XMS (eXtended
- Memory Specification) to allocate a UMB (Upper Memory Block) there is a
- bug in QEMM-386 that, under certain special circumstances, may cause a
- reboot. Function 10 is the XMS function that allocates a UMB.
-
- TO WHOM WILL IT HAPPEN?
- Probably only to programs that are hooking INT 1 and paying
- attention to 386 extended registers. PKUNZIP has been involved in all
- reported cases of this problem. The reboot may occur when PKUNZIP is
- executing or when another program runs after PKUNZIP or PKZIP has
- executed. The problem will not happen if the high order byte of EAX is
- zero when function 10 is invoked.
-
- WHAT IS THE FIX?
- Here is a patch to eliminate the problem on QEMM-386
- versions 5.10 through 5.13:
-
- 1) Make a copy of the QEMM386.SYS file in your QEMM directory.
- We are about to alter your current copy of QEMM386.SYS; the copy
- you make will serve as a backup in case this operation fails.
-
- COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMMOLD.SYS
-
- (If your QEMM386.SYS is not located in the QEMM directory of
- the C: drive, change the path accordingly.)
-
- 2) Go to the DOS directory on the hard disk and type:
-
- DEBUG C:\QEMM\QEMM386.SYS
-
- (If your QEMM386.SYS is not located in the QEMM directory of
- the C: drive, change the path accordingly.)
-
- Hit the Enter key; you should see the DEBUG prompt, which is a
- hyphen.
-
- 3) At the DEBUG prompt, type:
-
- S 100 L FF00 B3 B1 33 C9 9C
-
- Hit the Enter key; DEBUG should return a segment address and offset
-
- xxxx:yyyy
-
- 4) At the DEBUG prompt again, use the segment address and offset
- that was just returned to give the DEBUG command:
-
- E xxxx:yyyy B1 B1 33 C9 90
-
- The addresses that DEBUG returned in step 3 should be used in
- place of the addresses xxxx:yyyy and xxxx:zzzz, which we use as
- examples. Hit the Enter the key after each command; the DEBUG
- prompt should return in a moment.
-
- 5) At the DEBUG prompt, type:
-
- S 100 L FF00 B8 1 0 9D
-
- Hit the Enter key; DEBUG should return a segment address and
- an offset:
-
- xxxx:zzzz
-
- 6) At the DEBUG prompt again, use the segment address and offset
- that was returned in step 5 to give the DEBUG command:
-
- E xxxx:zzzz B8 1 0 FB
-
- The address that DEBUG returned in step 5 should be used in place of
- the address xxxx:zzzz, which we use as an example. Hit the Enter key;
- the DEBUG prompt should return in a moment.
-
- 7) At the DEBUG prompt, type
-
- W
-
- Hit the Enter key; DEBUG will announce that it is writing a certain
- number of bytes, then it will return the DEBUG prompt.
-
- 10) At the DEBUG prompt, type
-
- Q
-
- Hit the Enter key to exit DEBUG and return to DOS.
-
- --------------------------------------------------
-
- If the system fails after you perform this patch, copy the backup
- of QEMM386 that you made back to its original name.
-
- COPY C:\QEMM\QEMMOLD.SYS C:\QEMM\QEMM386.SYS
-
- (If your QEMM386.SYS is not located in the QEMM directory of the
- C: drive, change the path accordingly.)
-
- You may then wish to try the above procedure again, in case a
- mistake was made.
-
- * * * E N D O F F I L E * * *
-